diff --git a/user_guide_src/source/helpers/date_helper.rst b/user_guide_src/source/helpers/date_helper.rst
index 1a552c9..e9e122f 100644
--- a/user_guide_src/source/helpers/date_helper.rst
+++ b/user_guide_src/source/helpers/date_helper.rst
@@ -4,7 +4,12 @@
 
 The Date Helper file contains functions that help you work with dates.
 
-.. contents:: Page Contents
+.. contents::
+  :local:
+
+.. raw:: html
+
+  <div class="custom-index container"></div>
 
 Loading this Helper
 ===================
@@ -13,281 +18,258 @@
 
 	$this->load->helper('date');
 
+Available Functions
+===================
+
 The following functions are available:
 
-now()
-=====
 
-.. function:: now($timezone = NULL)
+.. function:: now([$timezone = NULL])
 
 	:param	string	$timezone: Timezone
 	:returns:	int
 
-Returns the current time as a UNIX timestamp, referenced either to your server's
-local time or any PHP suported timezone, based on the "time reference" setting
-in your config file. If you do not intend to set your master time reference to
-any other PHP supported timezone (which you'll typically do if you run a site
-that lets each user set their own timezone settings) there is no benefit to using
-this function over PHP's ``time()`` function.
+	Returns the current time as a UNIX timestamp, referenced either to your server's
+	local time or any PHP suported timezone, based on the "time reference" setting
+	in your config file. If you do not intend to set your master time reference to
+	any other PHP supported timezone (which you'll typically do if you run a site
+	that lets each user set their own timezone settings) there is no benefit to using
+	this function over PHP's ``time()`` function.
 
-::
+	::
 
-	echo now('Australia/Victoria');
+		echo now('Australia/Victoria');
 
-If a timezone is not provided, it will return ``time()`` based on the
-**time_reference** setting.
+	If a timezone is not provided, it will return ``time()`` based on the
+	**time_reference** setting.
 
-mdate()
-=======
 
-.. function:: mdate($datestr = '', $time = '')
+.. function:: mdate([$datestr = ''[, $time = '']])
 
 	:param	string 	$datestr: Date string
 	:param	int 	$time: UNIX timestamp
 	:returns:	int
 
-This function is identical to PHP's `date() <http://www.php.net/date>`_
-function, except that it lets you use MySQL style date codes, where each
-code letter is preceded with a percent sign, e.g. `%Y %m %d`
+	This function is identical to PHP's `date() <http://www.php.net/date>`_
+	function, except that it lets you use MySQL style date codes, where each
+	code letter is preceded with a percent sign, e.g. `%Y %m %d`
 
-The benefit of doing dates this way is that you don't have to worry
-about escaping any characters that are not date codes, as you would
-normally have to do with the ``date()`` function.
+	The benefit of doing dates this way is that you don't have to worry
+	about escaping any characters that are not date codes, as you would
+	normally have to do with the ``date()`` function.
 
-Example::
+	Example::
 
-	$datestring = 'Year: %Y Month: %m Day: %d - %h:%i %a';
-	$time = time();
-	echo mdate($datestring, $time);
+		$datestring = 'Year: %Y Month: %m Day: %d - %h:%i %a';
+		$time = time();
+		echo mdate($datestring, $time);
 
-If a timestamp is not included in the second parameter the current time
-will be used.
+	If a timestamp is not included in the second parameter the current time
+	will be used.
 
-standard_date()
-===============
 
-.. function:: standard_date($fmt = 'DATE_RFC822', $time = NULL)
+.. function:: standard_date([$fmt = 'DATE_RFC822'[, $time = NULL]])
 
 	:param	string	$fmt: Date format
 	:param	int 	$time: UNIX timestamp
 	:returns:	string
 
-Lets you generate a date string in one of several standardized formats.
+	Lets you generate a date string in one of several standardized formats.
 
-Example::
+	Example::
 
-	$format = 'DATE_RFC822';
-	$time = time();
-	echo standard_date($format, $time);
+		$format = 'DATE_RFC822';
+		$time = time();
+		echo standard_date($format, $time);
 
-.. note:: This function is DEPRECATED.Use the native ``date()`` combined with
-	`DateTime's format constants
-	<http://www.php.net/manual/en/class.datetime.php#datetime.constants.types>`_
-	instead:
+	.. note:: This function is DEPRECATED.Use the native ``date()`` combined with
+		`DateTime's format constants
+		<http://www.php.net/manual/en/class.datetime.php#datetime.constants.types>`_
+		instead::
 
-	|
-	| echo date(DATE_RFC822, time());
+			echo date(DATE_RFC822, time());
 
-Supported formats
------------------
+	**Supported formats:**
 
-===============	=======================	======================================
-Constant		Description				Example
-===============	=======================	======================================
-DATE_ATOM	Atom			2005-08-15T16:13:03+0000
-DATE_COOKIE	HTTP Cookies		Sun, 14 Aug 2005 16:13:03 UTC
-DATE_ISO8601   	ISO-8601		2005-08-14T16:13:03+00:00
-DATE_RFC822	RFC 822			Sun, 14 Aug 05 16:13:03 UTC
-DATE_RFC850	RFC 850			Sunday, 14-Aug-05 16:13:03 UTC
-DATE_RFC1036	RFC 1036		Sunday, 14-Aug-05 16:13:03 UTC
-DATE_RFC1123	RFC 1123		Sun, 14 Aug 2005 16:13:03 UTC
-DATE_RFC2822 	RFC 2822		Sun, 14 Aug 2005 16:13:03 +0000
-DATE_RSS	RSS			Sun, 14 Aug 2005 16:13:03 UTC
-DATE_W3C	W3C			2005-08-14T16:13:03+0000
-===============	=======================	======================================
+	===============	=======================	======================================
+	Constant		Description				Example
+	===============	=======================	======================================
+	DATE_ATOM	Atom			2005-08-15T16:13:03+0000
+	DATE_COOKIE	HTTP Cookies		Sun, 14 Aug 2005 16:13:03 UTC
+	DATE_ISO8601   	ISO-8601		2005-08-14T16:13:03+00:00
+	DATE_RFC822	RFC 822			Sun, 14 Aug 05 16:13:03 UTC
+	DATE_RFC850	RFC 850			Sunday, 14-Aug-05 16:13:03 UTC
+	DATE_RFC1036	RFC 1036		Sunday, 14-Aug-05 16:13:03 UTC
+	DATE_RFC1123	RFC 1123		Sun, 14 Aug 2005 16:13:03 UTC
+	DATE_RFC2822 	RFC 2822		Sun, 14 Aug 2005 16:13:03 +0000
+	DATE_RSS	RSS			Sun, 14 Aug 2005 16:13:03 UTC
+	DATE_W3C	W3C			2005-08-14T16:13:03+0000
+	===============	=======================	======================================
 
-local_to_gmt()
-==============
 
-.. function:: local_to_gmt($time = '')
+.. function:: local_to_gmt([$time = ''])
 
 	:param	int	$time: UNIX timestamp
 	:returns:	string
 
-Takes a UNIX timestamp as input and returns it as GMT.
+	Takes a UNIX timestamp as input and returns it as GMT.
 
-Example::
+	Example::
 
-	$gmt = local_to_gmt(time());
+		$gmt = local_to_gmt(time());
 
-gmt_to_local()
-==============
 
-.. function:: gmt_to_local($time = '', $timezone = 'UTC', $dst = FALSE)
+.. function:: gmt_to_local([$time = ''[, $timezone = 'UTC'[, $dst = FALSE]]])
 
 	:param	int 	$time: UNIX timestamp
 	:param	string	$timezone: Timezone
 	:param	bool 	$dst: Whether DST is active
 	:returns:	int
 
-Takes a UNIX timestamp (referenced to GMT) as input, and converts it to
-a localized timestamp based on the timezone and Daylight Saving Time
-submitted.
+	Takes a UNIX timestamp (referenced to GMT) as input, and converts it to
+	a localized timestamp based on the timezone and Daylight Saving Time
+	submitted.
 
-Example::
+	Example::
 
-	$timestamp = 1140153693;
-	$timezone  = 'UM8';
-	$daylight_saving = TRUE;
-	echo gmt_to_local($timestamp, $timezone, $daylight_saving);
+		$timestamp = 1140153693;
+		$timezone  = 'UM8';
+		$daylight_saving = TRUE;
+		echo gmt_to_local($timestamp, $timezone, $daylight_saving);
 
 
-.. note:: For a list of timezones see the reference at the bottom of this page.
+	.. note:: For a list of timezones see the reference at the bottom of this page.
 
-mysql_to_unix()
-===============
 
-.. function:: mysql_to_unix($time = '')
+.. function:: mysql_to_unix([$time = ''])
 
 	:param	int 	$time: UNIX timestamp
 	:returns:	int
 
-Takes a MySQL Timestamp as input and returns it as a UNIX timestamp.
+	Takes a MySQL Timestamp as input and returns it as a UNIX timestamp.
 
-Example::
+	Example::
 
-	$unix = mysql_to_unix('20061124092345');
+		$unix = mysql_to_unix('20061124092345');
 
-unix_to_human()
-===============
 
-.. function:: unix_to_human($time = '', $seconds = FALSE, $fmt = 'us')
+.. function:: unix_to_human([$time = ''[, $seconds = FALSE[, $fmt = 'us']]])
 
 	:param	int	$time: UNIX timestamp
 	:param	bool	$seconds: Whether to show seconds
 	:param	string	$fmt: format (us or euro)
 	:returns: integer
 
-Takes a UNIX timestamp as input and returns it in a human readable
-format with this prototype::
+	Takes a UNIX timestamp as input and returns it in a human readable
+	format with this prototype::
 
-	YYYY-MM-DD HH:MM:SS AM/PM
+		YYYY-MM-DD HH:MM:SS AM/PM
 
-This can be useful if you need to display a date in a form field for
-submission.
+	This can be useful if you need to display a date in a form field for
+	submission.
 
-The time can be formatted with or without seconds, and it can be set to
-European or US format. If only the timestamp is submitted it will return
-the time without seconds formatted for the U.S.
+	The time can be formatted with or without seconds, and it can be set to
+	European or US format. If only the timestamp is submitted it will return
+	the time without seconds formatted for the U.S.
 
-Examples::
+	Examples::
 
-	$now = time();
-	echo unix_to_human($now); // U.S. time, no seconds
-	echo unix_to_human($now, TRUE, 'us'); // U.S. time with seconds
-	echo unix_to_human($now, TRUE, 'eu'); // Euro time with seconds
+		$now = time();
+		echo unix_to_human($now); // U.S. time, no seconds
+		echo unix_to_human($now, TRUE, 'us'); // U.S. time with seconds
+		echo unix_to_human($now, TRUE, 'eu'); // Euro time with seconds
 
-human_to_unix()
-===============
 
-.. function:: human_to_unix($datestr = '')
+.. function:: human_to_unix([$datestr = ''])
 
 	:param	int 	$datestr: Date string
 	:returns:	int UNIX timestamp or FALSE on failure
 
-The opposite of the :func:`unix_to_time()` function. Takes a "human"
-time as input and returns it as a UNIX timestamp. This is useful if you
-accept "human" formatted dates submitted via a form. Returns boolean FALSE
-date string passed to it is not formatted as indicated above.
+	The opposite of the :func:`unix_to_time()` function. Takes a "human"
+	time as input and returns it as a UNIX timestamp. This is useful if you
+	accept "human" formatted dates submitted via a form. Returns boolean FALSE
+	date string passed to it is not formatted as indicated above.
 
-Example::
+	Example::
 
-	$now = time();
-	$human = unix_to_human($now);
-	$unix = human_to_unix($human);
+		$now = time();
+		$human = unix_to_human($now);
+		$unix = human_to_unix($human);
 
-nice_date()
-===========
 
-.. function:: nice_date($bad_date = '', $format = FALSE)
+.. function:: nice_date([$bad_date = ''[, $format = FALSE]])
 
 	:param	int	$bad_date: The terribly formatted date-like string
 	:param	string	$format: Date format to return (same as PHP's ``date()`` function)
 	:returns:	string
 
-This function can take a number poorly-formed date formats and convert
-them into something useful. It also accepts well-formed dates.
+	This function can take a number poorly-formed date formats and convert
+	them into something useful. It also accepts well-formed dates.
 
-The function will return a UNIX timestamp by default. You can, optionally,
-pass a format string (the same type as the PHP ``date()`` function accepts)
-as the second parameter.
+	The function will return a UNIX timestamp by default. You can, optionally,
+	pass a format string (the same type as the PHP ``date()`` function accepts)
+	as the second parameter.
 
-Example::
+	Example::
 
-	$bad_date = '199605';
-	// Should Produce: 1996-05-01
-	$better_date = nice_date($bad_date, 'Y-m-d');
+		$bad_date = '199605';
+		// Should Produce: 1996-05-01
+		$better_date = nice_date($bad_date, 'Y-m-d');
 
-	$bad_date = '9-11-2001';
-	// Should Produce: 2001-09-11
-	$better_date = nice_date($bad_date, 'Y-m-d');
+		$bad_date = '9-11-2001';
+		// Should Produce: 2001-09-11
+		$better_date = nice_date($bad_date, 'Y-m-d');
 
-timespan()
-==========
 
-.. function:: timespan($seconds = 1, $time = '', $units = '')
+.. function:: timespan([$seconds = 1[, $time = ''[, $units = '']]])
 
 	:param	int	$seconds: Number of seconds
 	:param	string	$time: UNIX timestamp
 	:param	int	$units: Number of time units to display
 	:returns:	string
 
-Formats a UNIX timestamp so that is appears similar to this::
+	Formats a UNIX timestamp so that is appears similar to this::
 
-	1 Year, 10 Months, 2 Weeks, 5 Days, 10 Hours, 16 Minutes
+		1 Year, 10 Months, 2 Weeks, 5 Days, 10 Hours, 16 Minutes
 
-The first parameter must contain a UNIX timestamp.
-The second parameter must contain a timestamp that is greater that the
-first timestamp.
-The thirdparameter is optional and limits the number of time units to display.
+	The first parameter must contain a UNIX timestamp.
+	The second parameter must contain a timestamp that is greater that the
+	first timestamp.
+	The thirdparameter is optional and limits the number of time units to display.
 
-If the second parameter empty, the current time will be used.
+	If the second parameter empty, the current time will be used.
 
-The most common purpose for this function is to show how much time has
-elapsed from some point in time in the past to now.
+	The most common purpose for this function is to show how much time has
+	elapsed from some point in time in the past to now.
 
-Example::
+	Example::
 
-	$post_date = '1079621429';
-	$now = time();
-	$units = 2;
-	echo timespan($post_date, $now, $units);
+		$post_date = '1079621429';
+		$now = time();
+		$units = 2;
+		echo timespan($post_date, $now, $units);
 
-.. note:: The text generated by this function is found in the following language
-	file: `language/<your_lang>/date_lang.php`
+	.. note:: The text generated by this function is found in the following language
+		file: `language/<your_lang>/date_lang.php`
 
-days_in_month()
-===============
 
-.. function:: days_in_month($month = 0, $year = '')
+.. function:: days_in_month([$month = 0[, $year = '']])
 
 	:param	int	$month: a numeric month
 	:param	int	$year: a numeric year
 	:returns:	int
 
-Returns the number of days in a given month/year. Takes leap years into
-account.
+	Returns the number of days in a given month/year. Takes leap years into
+	account.
 
-Example::
+	Example::
 
-	echo days_in_month(06, 2005);
+		echo days_in_month(06, 2005);
 
-If the second parameter is empty, the current year will be used.
+	If the second parameter is empty, the current year will be used.
 
-date_range()
-============
 
-.. function:: date_range($unix_start = '', $mixed = '', $is_unix = TRUE, $format = 'Y-m-d')
+.. function:: date_range([$unix_start = ''[, $mixed = ''[, $is_unix = TRUE[, $format = 'Y-m-d']]]])
 
 	:param	int	$unix_start: UNIX timestamp of the range start date
 	:param	int	$mixed: UNIX timestamp of the range end date or interval in days
@@ -295,40 +277,36 @@
 	:param	string	$format: Output date format, same as in ``date()``
 	:returns:	array
 
-Returns a list of dates within a specified period.
+	Returns a list of dates within a specified period.
 
-Example::
+	Example::
 
-	$range = date_range('2012-01-01', '2012-01-15');
-	echo "First 15 days of 2012:";
-	foreach ($range as $date)
-	{
-		echo $date."\n";
-	}
+		$range = date_range('2012-01-01', '2012-01-15');
+		echo "First 15 days of 2012:";
+		foreach ($range as $date)
+		{
+			echo $date."\n";
+		}
 
-timezones()
-===========
 
-.. function:: timezones($tz = '')
+.. function:: timezones([$tz = ''])
 
 	:param	string	$tz: a numeric timezone
 	:returns:	string
 
-Takes a timezone reference (for a list of valid timezones, see the
-"Timezone Reference" below) and returns the number of hours offset from
-UTC.
+	Takes a timezone reference (for a list of valid timezones, see the
+	"Timezone Reference" below) and returns the number of hours offset from
+	UTC.
 
-Example::
+	Example::
 
-	echo timezones('UM5');
+		echo timezones('UM5');
 
 
-This function is useful when used with :func:`timezone_menu()`.
+	This function is useful when used with :func:`timezone_menu()`.
 
-timezone_menu()
-===============
 
-.. function:: timezone_menu($default = 'UTC', $class = '', $name = 'timezones', $attributes = '')
+.. function:: timezone_menu([$default = 'UTC'[, $class = ''[, $name = 'timezones'[, $attributes = '']]]])
 
 	:param	string	$default: Timezone
 	:param	string	$class: Class name
@@ -336,72 +314,72 @@
 	:param	mixed	$attributes: HTML attributes
 	:returns:	string
 
-Generates a pull-down menu of timezones, like this one:
+	Generates a pull-down menu of timezones, like this one:
 
-.. raw:: html
+	.. raw:: html
 
-	<form action="#">
-		<select name="timezones">
-			<option value='UM12'>(UTC -12:00) Baker/Howland Island</option>
-			<option value='UM11'>(UTC -11:00) Samoa Time Zone, Niue</option>
-			<option value='UM10'>(UTC -10:00) Hawaii-Aleutian Standard Time, Cook Islands, Tahiti</option>
-			<option value='UM95'>(UTC -9:30) Marquesas Islands</option>
-			<option value='UM9'>(UTC -9:00) Alaska Standard Time, Gambier Islands</option>
-			<option value='UM8'>(UTC -8:00) Pacific Standard Time, Clipperton Island</option>
-			<option value='UM7'>(UTC -7:00) Mountain Standard Time</option>
-			<option value='UM6'>(UTC -6:00) Central Standard Time</option>
-			<option value='UM5'>(UTC -5:00) Eastern Standard Time, Western Caribbean Standard Time</option>
-			<option value='UM45'>(UTC -4:30) Venezuelan Standard Time</option>
-			<option value='UM4'>(UTC -4:00) Atlantic Standard Time, Eastern Caribbean Standard Time</option>
-			<option value='UM35'>(UTC -3:30) Newfoundland Standard Time</option>
-			<option value='UM3'>(UTC -3:00) Argentina, Brazil, French Guiana, Uruguay</option>
-			<option value='UM2'>(UTC -2:00) South Georgia/South Sandwich Islands</option>
-			<option value='UM1'>(UTC -1:00) Azores, Cape Verde Islands</option>
-			<option value='UTC' selected='selected'>(UTC) Greenwich Mean Time, Western European Time</option>
-			<option value='UP1'>(UTC +1:00) Central European Time, West Africa Time</option>
-			<option value='UP2'>(UTC +2:00) Central Africa Time, Eastern European Time, Kaliningrad Time</option>
-			<option value='UP3'>(UTC +3:00) Moscow Time, East Africa Time</option>
-			<option value='UP35'>(UTC +3:30) Iran Standard Time</option>
-			<option value='UP4'>(UTC +4:00) Azerbaijan Standard Time, Samara Time</option>
-			<option value='UP45'>(UTC +4:30) Afghanistan</option>
-			<option value='UP5'>(UTC +5:00) Pakistan Standard Time, Yekaterinburg Time</option>
-			<option value='UP55'>(UTC +5:30) Indian Standard Time, Sri Lanka Time</option>
-			<option value='UP575'>(UTC +5:45) Nepal Time</option>
-			<option value='UP6'>(UTC +6:00) Bangladesh Standard Time, Bhutan Time, Omsk Time</option>
-			<option value='UP65'>(UTC +6:30) Cocos Islands, Myanmar</option>
-			<option value='UP7'>(UTC +7:00) Krasnoyarsk Time, Cambodia, Laos, Thailand, Vietnam</option>
-			<option value='UP8'>(UTC +8:00) Australian Western Standard Time, Beijing Time, Irkutsk Time</option>
-			<option value='UP875'>(UTC +8:45) Australian Central Western Standard Time</option>
-			<option value='UP9'>(UTC +9:00) Japan Standard Time, Korea Standard Time, Yakutsk Time</option>
-			<option value='UP95'>(UTC +9:30) Australian Central Standard Time</option>
-			<option value='UP10'>(UTC +10:00) Australian Eastern Standard Time, Vladivostok Time</option>
-			<option value='UP105'>(UTC +10:30) Lord Howe Island</option>
-			<option value='UP11'>(UTC +11:00) Magadan Time, Solomon Islands, Vanuatu</option>
-			<option value='UP115'>(UTC +11:30) Norfolk Island</option>
-			<option value='UP12'>(UTC +12:00) Fiji, Gilbert Islands, Kamchatka Time, New Zealand Standard Time</option>
-			<option value='UP1275'>(UTC +12:45) Chatham Islands Standard Time</option>
-			<option value='UP13'>(UTC +13:00) Phoenix Islands Time, Tonga</option>
-			<option value='UP14'>(UTC +14:00) Line Islands</option>
-		</select>
-	</form>
+		<form action="#">
+			<select name="timezones">
+				<option value='UM12'>(UTC -12:00) Baker/Howland Island</option>
+				<option value='UM11'>(UTC -11:00) Samoa Time Zone, Niue</option>
+				<option value='UM10'>(UTC -10:00) Hawaii-Aleutian Standard Time, Cook Islands, Tahiti</option>
+				<option value='UM95'>(UTC -9:30) Marquesas Islands</option>
+				<option value='UM9'>(UTC -9:00) Alaska Standard Time, Gambier Islands</option>
+				<option value='UM8'>(UTC -8:00) Pacific Standard Time, Clipperton Island</option>
+				<option value='UM7'>(UTC -7:00) Mountain Standard Time</option>
+				<option value='UM6'>(UTC -6:00) Central Standard Time</option>
+				<option value='UM5'>(UTC -5:00) Eastern Standard Time, Western Caribbean Standard Time</option>
+				<option value='UM45'>(UTC -4:30) Venezuelan Standard Time</option>
+				<option value='UM4'>(UTC -4:00) Atlantic Standard Time, Eastern Caribbean Standard Time</option>
+				<option value='UM35'>(UTC -3:30) Newfoundland Standard Time</option>
+				<option value='UM3'>(UTC -3:00) Argentina, Brazil, French Guiana, Uruguay</option>
+				<option value='UM2'>(UTC -2:00) South Georgia/South Sandwich Islands</option>
+				<option value='UM1'>(UTC -1:00) Azores, Cape Verde Islands</option>
+				<option value='UTC' selected='selected'>(UTC) Greenwich Mean Time, Western European Time</option>
+				<option value='UP1'>(UTC +1:00) Central European Time, West Africa Time</option>
+				<option value='UP2'>(UTC +2:00) Central Africa Time, Eastern European Time, Kaliningrad Time</option>
+				<option value='UP3'>(UTC +3:00) Moscow Time, East Africa Time</option>
+				<option value='UP35'>(UTC +3:30) Iran Standard Time</option>
+				<option value='UP4'>(UTC +4:00) Azerbaijan Standard Time, Samara Time</option>
+				<option value='UP45'>(UTC +4:30) Afghanistan</option>
+				<option value='UP5'>(UTC +5:00) Pakistan Standard Time, Yekaterinburg Time</option>
+				<option value='UP55'>(UTC +5:30) Indian Standard Time, Sri Lanka Time</option>
+				<option value='UP575'>(UTC +5:45) Nepal Time</option>
+				<option value='UP6'>(UTC +6:00) Bangladesh Standard Time, Bhutan Time, Omsk Time</option>
+				<option value='UP65'>(UTC +6:30) Cocos Islands, Myanmar</option>
+				<option value='UP7'>(UTC +7:00) Krasnoyarsk Time, Cambodia, Laos, Thailand, Vietnam</option>
+				<option value='UP8'>(UTC +8:00) Australian Western Standard Time, Beijing Time, Irkutsk Time</option>
+				<option value='UP875'>(UTC +8:45) Australian Central Western Standard Time</option>
+				<option value='UP9'>(UTC +9:00) Japan Standard Time, Korea Standard Time, Yakutsk Time</option>
+				<option value='UP95'>(UTC +9:30) Australian Central Standard Time</option>
+				<option value='UP10'>(UTC +10:00) Australian Eastern Standard Time, Vladivostok Time</option>
+				<option value='UP105'>(UTC +10:30) Lord Howe Island</option>
+				<option value='UP11'>(UTC +11:00) Magadan Time, Solomon Islands, Vanuatu</option>
+				<option value='UP115'>(UTC +11:30) Norfolk Island</option>
+				<option value='UP12'>(UTC +12:00) Fiji, Gilbert Islands, Kamchatka Time, New Zealand Standard Time</option>
+				<option value='UP1275'>(UTC +12:45) Chatham Islands Standard Time</option>
+				<option value='UP13'>(UTC +13:00) Phoenix Islands Time, Tonga</option>
+				<option value='UP14'>(UTC +14:00) Line Islands</option>
+			</select>
+		</form>
 
 
-This menu is useful if you run a membership site in which your users are
-allowed to set their local timezone value.
+	This menu is useful if you run a membership site in which your users are
+	allowed to set their local timezone value.
 
-The first parameter lets you set the "selected" state of the menu. For
-example, to set Pacific time as the default you will do this::
+	The first parameter lets you set the "selected" state of the menu. For
+	example, to set Pacific time as the default you will do this::
 
-	echo timezone_menu('UM8');
+		echo timezone_menu('UM8');
 
-Please see the timezone reference below to see the values of this menu.
+	Please see the timezone reference below to see the values of this menu.
 
-The second parameter lets you set a CSS class name for the menu.
+	The second parameter lets you set a CSS class name for the menu.
 
-The fourth parameter lets you set one or more attributes on the generated select tag.
+	The fourth parameter lets you set one or more attributes on the generated select tag.
 
-.. note:: The text contained in the menu is found in the following
-	language file: `language/<your_lang>/date_lang.php`
+	.. note:: The text contained in the menu is found in the following
+		language file: `language/<your_lang>/date_lang.php`
 
 
 Timezone Reference
